package com.ruoyi.tzzl.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.tzzl.domain.WzPayOrderRecord;
import com.ruoyi.tzzl.domain.WzProgramUser;
import com.ruoyi.tzzl.domain.WzUserDetails;

import javax.jws.Oneway;
import java.util.List;
import java.util.Map;

/**
 * 小程序用户Service接口
 * @author by caoyong
 * @date 2022/11/7
 **/
public interface  IWzProgramUserService extends IService<WzProgramUser> {

    /**
     * 查询小程序用户列表
     *
     * @param wzProgramUser 小程序用户
     * @return 小程序用户集合
     */
     List<WzProgramUser> selectWzProgramUserList(WzProgramUser wzProgramUser);


     WzProgramUser getByName(String name);

     /**
      * 查询用户详情
      * */
     WzProgramUser userDetails(Long id);

     /**查询用户信息
      * 旗下会员人数
      * 完成邀约订单数量
      * */
     WzProgramUser details(Long id);

     /**查询平台信息*/
     WzProgramUser platform();

     /**
      * 查询用户资料详情
      * */
     Map<String,Object> informationDetails(Long id);

     /**修改用户个人资料*/
     boolean updateDetails(WzUserDetails wzUserDetails);

     /**修改用户信息(后台)*/
     boolean updateUserInformation(WzProgramUser wzProgramUser);

     /**修改用户自我介绍*/
     boolean updateYourself(WzUserDetails wzUserDetails);

     /**删除用户*/
     boolean batchDeletion(List<String> ids);


     /**修改支付宝账号*/
     boolean updateAlipay(WzUserDetails wzUserDetails);

     /**查询用户附近的人*/
     List<WzProgramUser> nearbyList(Long id);

     /**新增用户*/
//     boolean addUser(WzProgramUser wzProgramUser);

     /**查询首页展示数据*/
     Map<String,Object> homePageData();

     /**利用手机号码查询用户信息*/
     WzProgramUser getByPhone(Long phone);

     /**修改用户在线状态*/
     boolean onlineStatus(WzProgramUser wzProgramUser);

     /**查看用户消息记录*/
    List<Object> informationRecord(Long id);

 /**查看我的团队用户列表*/
    List<WzProgramUser> myTeam(Long id,String type);

    /**查看团队营收*/
    Map<String,Object> teamReceivable(Long id);

    /**查看团队邀请信息*/
    List<WzProgramUser> invitationRecord(Long id,String state);


    /**查看用户列表
     * type 0-女用户  1-男用户
     * 返回用户列表id
     * */
    List<Long> getByType(String type);

    /**开通免费会员*/
    boolean freeMembership(WzProgramUser wzProgramUser);

    /**根据团队红娘id查询用户列表*/
    List<WzProgramUser> getByMatchmakerId(Long id);

    /**用户充值友币*/
    boolean topUp(WzPayOrderRecord wzPayOrderRecord);

}
